//
//  ListCellData.h
//  UKListManager
//
//  Created by ET|冰琳 on 16/11/9.
//  Copyright © 2016年 UK. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "CellBinder.h"


typedef void(^MultipeerCellSelect)(NSIndexPath *indexPath);
typedef void(^MultipeerCellConfiguration)(id cell, NSIndexPath *indexPath);
typedef void(^MultipeerCellHeight)(NSIndexPath *indexPath);

@interface ListCellData : NSObject

@property (nonatomic, readonly) NSString *identifier;
@property (nonatomic, readonly) MultipeerCellConfiguration config;
@property (nonatomic, readonly) MultipeerCellSelect        select;
@property (nonatomic, readonly) MultipeerCellHeight        height;

+ (ListCellData *)create;

+ (ListCellData *)withIdentifier:(NSString *)identifier
                    cellConfig:(MultipeerCellConfiguration)configuration
                        select:(MultipeerCellSelect)select;

+ (ListCellData *)withCell:(Class)cellClass
              cellConfig:(MultipeerCellConfiguration)configuration
                  select:(MultipeerCellSelect)select;


/*
- (ListCellData *)withIdentifier:(NSString *)identifier;
- (ListCellData *)withCell:(Class)cellClass;

- (ListCellData *)withCellConfig:(MultipeerCellConfiguration)configuration;
- (ListCellData *)withSelect:(MultipeerCellSelect)select;
*/
- (ListCellData *)withHeight:(MultipeerCellHeight)height;

@end
